.TH MIDICOPY 1
.SH NAME
midicopy \- Copy selected track, channel, time interval of a MIDI file to another MIDI file
.SH SYNOPSIS
\fBmidicopy\fP [\fB-ver\fP] [\fB-trks\fP \fIn1,n2,..\fP] [\fB-chans\fP \fIn1,n2,...\fP]\
    [\fB-from\fP \fIn (in midi ticks)\fP] [\fB-to\fP \fIn (in midi ticks)\fP]\
    [\fB-fromsec %f\fP \fIn (in seconds)\fP] [\fB-tosec\fP \fIn (in seconds)\fP]\
    [\fB-frombeat %f\fP \fIn (in beats)\fP] [\fB-tosec\fP \fIn (in beats)\fP]\
    [\fB-replace\fP \fItrk,loc,val\fP] \fIinput.mid output.mid\fP
.SH "DESCRIPTION"
.PP
.B midicopy
is used to copy part of a MIDI file to another MIDI file. You can select
a particular time interval, particular channels, and particular tracks
or any combinations. If one or both of the run time parameters -from or -to
are included, the program returns the playing time in seconds of the
output file.  Midicopy was developed by Seymour Shlien from the
midifilelib distribution available from
.IR http://www.harmony-central.com/MIDI/midifilelib.tar.gz .
.SH OPTIONS
.TP
.B -ver
prints version number and then exits
.TP
.B -trks n
Selects the tracks to be copied where the track numbers start
from 1.  If more than one track is specified, they should be separated by
commas. You should always copy track 1 since by convention it contains
information pertinent to all the other  tracks. By default all tracks
are copied unless you specify particular tracks using this run time
parameter.
.TP
.B -chns n
Like above, it specifies the MIDI channels to be copied. By default
all channels are copied. Channel numbers also start from 1.
.TP
.B -from n
The program will copy all MIDI commands starting from midi pulse
number n. By default it will start from time zero or the beginning
of the MIDI file.
.TP
.B -to n
Stops copying all events after midi pulse number n. By default
the file is copied to the end.
.TP
.B -frombeat n
The program will copy all MIDI commands starting from quarter beat
number n. By default it will start from time zero or the beginning
of the MIDI file.
.TP
.B -tobeat n
Stops copying all events after quarter beat number n. By default
the file is copied to the end.
.TP
.B -fromsec n
The program will copy all MIDI commands starting from time n 
in seconds.
.TP
.B -tosec n
Stops copying all events after time n in seconds. These two
options (-fromsec and -tosec) do not work accurately if the
MIDI file has more than one tempo command. Only the first
one is used for converting seconds into MIDI pulse units.
It is therefore preferable to use the -from and -to options.
.TP
.B -replace trk,loc,val
This option should be used alone. Midicopy will copy the entire
file verbatim except it will replace a byte by val, where the
byte is located in the specified track (trk) and specified position
(loc). Commonly this function is used for changing a particular
MIDI program number (instrument) associated with a channel.
You need to know the byte count in the track of that parameter
in order to use this function,
.SH EXAMPLE
.B midicopy.exe -trks 1,5 -from 2669 -to 8634 uzicko.mid fragment.mid
Midicopy will copy tracks 1 and 5 starting from midi pulse position
2669 and ending at MIDI pulse position 8634.

.SH "SEE ALSO"
.PP
.IR abcmtex "(1), " abc2abc "(1), " abc2midi "(1), " midi2abc "(1) ", yaps "(1)"
.SH AUTHOR
This manual page was written by Seymour Shlien.
.SH VERSION
This man page describes midicopy version 1.04 from September 19 2005.
